package ec.linde.modulos.recursos;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.faces.application.FacesMessage;
import javax.faces.application.FacesMessage.Severity;
import javax.faces.context.FacesContext;

/**
 * Esta clase permite administrar las validaciones que se presentan en los
 * formularios.
 * 
 * @author Luis Tumipamba
 * 
 */
public class Validaciones {

	private static final String PATTERN_EMAIL = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
			+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
	private static final String PATTERN_USER = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{6,20}$";

	/**
	 * Metodo que valida el formato de la contrasnia de acuerdo a un patron
	 * dado.
	 * 
	 * @param pass
	 * @return true si es correcto, false si no es correcto
	 */
	public static boolean contraseniaCumpleReglas(String pass) {
		Pattern pattern = Pattern.compile(PATTERN_USER);
		Matcher matcher = pattern.matcher(pass);
		if (!matcher.find()) {
			return false;
		}
		return true;
	}

	/**
	 * Metodo que valida el formato del email de acuerdo a un patron dado.
	 * 
	 * @param pass
	 * @return true si es correcto, false si no es correcto
	 */
	public static boolean mailValido(String email) {
		Pattern pattern = Pattern.compile(PATTERN_EMAIL);
		Matcher matcher = pattern.matcher(email);
		return matcher.matches();
	}
	
	public static void mensaje(Severity severity, String resumen, String detalle) {
		FacesMessage msg = null;
		msg = new FacesMessage(severity, resumen, detalle);
		FacesContext.getCurrentInstance().addMessage(null, msg);
	}

}
